Convolutional Neural Networks Explained In Depth